// pages/balance_recharge/balance_recharge.js
var yz_pay = require("../../../mycomponent/yz_pay/yz_pay");
var app = getApp();
Page({
  behaviors: [yz_pay],
  /**
	 * 页面的初始数据
	 */
  data: {
    language: '',
    credit2: 0,
    buttons: [],
    typename: '',
    recharge: '',
    ordersn: '',
    money: '',
    activatDes: {},
    // 选择的充值方式
    pay_type: '',
    balanceLang: '余额',
    proportion_status:0,
    payMuch:'',
    info:[],
    popshow:false
  },

  /**
	 * 生命周期函数--监听页面加载
	 */
  onLoad: function(options) {
    if(options.store_id){
      this.setData({
        store_id:options.store_id
      });
    }
  },
  onShow:function(){
    this.getStoreBalance();
  },
  selectSpecs(e){
    let val = e.detail;
    for( let key in this.data.buttons){
      if(this.data.buttons[key].value == val){
        this.setData({
          radio:this.data.buttons[key].value,
          methodsArr : this.data.buttons[key]
        });
      }
    }
  },
  /**
	 * 生命周期函数--监听页面初次渲染完成
	 */
  onReady: function() {
    let language = wx.getStorageSync('langIndex');
    this.setData({ 'language': language.en});
  },

  /**
	 * 用户点击右上角分享
	 */
  onShareAppMessage: function() {},
  // 初始化参数
  getStoreBalance() {
    let that = this;
    let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.balance.balance.index');
    app._getNetWork({
      url: urlStr,
      data:{
        store_id:this.data.store_id
      },
      success: function(resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          that.setData({
            credit2: res.data.member_balance,
            show_activity:res.data.show_activity,
            buttons: res.data.pay_buttons,
            title: res.data.title,
            activatDes: res.data.activity,
            proportion_status:res.data.proportion_status,
            info:res.data,
            is_open_recharge_order:res.data.is_open_recharge_order == 0?false:true,
            store:res.data.store
          });
          for (let i = 0; i < that.data.buttons.length; i++) {
            if (that.data.buttons[i]) {
              that.setData({
                ['buttons[' + i + '].btclass']: that.btnclass(that.data.buttons[i].value)
              });
            }
          }
          for( let key in that.data.buttons){
            that.setData({
              radio:that.data.buttons[key].value,
              methodsArr : that.data.buttons[key]
            });
            return;
          }
        } else {
          wx.showToast({
            icon: 'none',
            title: res.msg,
            duration: 1500
          });
        }
      },
      fail: function(res) {
        console.log(res);
      }
    });
  },
  moneyinp(e) {
    let val = e.detail.value;
    this.setData({
      money: val
    });
  },
  // 确认充值
  confirm(e) {
    // console.log(!this.data?.methodsArr?.value);
    let type = this.data?.methodsArr?.value;
    console.log(type)
    if(!type){
      app.tips('请选择支付方式');
      return
    }
    this.setData({
      money: this.data.payMuch,
      pay_type: type
    });
    let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.balance.balance.recharge');
    urlStr += '&client_type=2';
    urlStr += '&app_type=wechat';
    urlStr += '&pay_type_id=' + this.data.pay_type;
    urlStr += '&recharge_money=' + this.data.money;
    urlStr += '&store_id=' + this.data.store_id;
    app._getNetWork({
      url: urlStr,
      success: (resdata)=> {
        var res = resdata.data;
        if (res.result == 1) {
          if(this.data.pay_type == '88'){
            wx.showModal({
              title:'',
              showCancel:false,
              content:'充值成功',
              success:function(res){
                wx.navigateBack({
                    delta:1
                })
              }
            })
            return
          }
          if (app._isTextEmpty(res.data.ordersn)) {
            wx.showToast({
              icon: 'none',
              title: '参数错误',
              duration: 1500
            });
            return;
          }
          this.setData({
            ordersn: res.data.ordersn
          });
          console.log(res.data.data.config,'ddddddddddddd')
          this.rechargePay(type, res, res.data.ordersn);
        } else {
          wx.showToast({
            icon: 'none',
            title: res.msg,
            duration: 1500
          });
        }
      },
      fail:(res)=> {
        console.log(res);
      }
    });
  },
  // 键盘
  //处理按键
  _handleKeyPress(e) {
    let num = e.currentTarget.dataset.num;
    //不同按键处理逻辑
    // -1 代表无效按键，直接返回
    if (num == -1) return false;
    switch (String(num)) {
    //小数点
    case ".":
      this._handleDecimalPoint();
      break;
    //删除键
    case "D":
      this._handleDeleteKey();
      break;
    //确认键
    case "S":
      this._handleConfirmKey();
      break;
    default:
      this._handleNumberKey(num);
      break;
    }
  },
  //处理小数点函数
  _handleDecimalPoint() {
    //如果包含小数点，直接返回
    if (this.data.payMuch.indexOf(".") > -1) {
      return false;
    }
    //如果小数点是第一位，补0
    if (!this.data.payMuch.length) {
      this.setData({
        payMuch: "0.",
      });
    } else {
      //如果不是，添加一个小数点
      this.setData({
        payMuch: this.data.payMuch + ".",
      });
    }
  },
  //处理删除键
  _handleDeleteKey() {
    let S = this.data.payMuch;
    //如果没有输入，直接返回
    if (S.length <= 1) {
      this.setData({
        payMuch: "0",
      });
      return;
    }
    //否则删除最后一个
    this.setData({
      payMuch: S.substring(0, S.length - 1),
    });
  },
  _handleConfirmKey() {
    if(this.data.store){
      let S = this.data.payMuch;
      //未输入
      if (!S.length || Number(S) === 0) {
        wx.showToast({
          icon: "none",
          title: "您目前未输入!",
          duration: 1500,
        });
        return false;
      }
      //将 8. 这种转换成 8.00
      if (S.indexOf(".") > -1 && S.indexOf(".") === S.length - 1) {
        S = Number(S.substring(0, S.length - 1)).toFixed(2);
      }
      //保留两位
      S = Number(S).toFixed(2);
      this.setData({
        payMuch: S,
      });
      if(this.data.is_open_recharge_order){
        this.setData({
          popshow:true
        });
      }else{
        this.confirmOrder();
      }
    }
  },
  confirmOrder() {
    var val = this.data.payMuch;
    if (val && val > 0) {
      this.setData({
        payPrice: val,
        confirmOrderStatus: true,
        isdisabled: true,
      });
      // this.preGoodsBuy();
      this.confirm();
    } else {
      wx.showToast({
        icon: "none",
        title: "请输入正确的付款金额!",
        duration: 1500,
      });
      this.setData({
        confirmOrderStatus: false,
        isdisabled: false,
      });
    }
  },
  //处理数字
  _handleNumberKey(num) {
    let S = this.data.payMuch;
    //如果有小数点且小数点位数不小于2
    if (S.indexOf(".") > -1 && S.substring(S.indexOf(".") + 1).length < 2) {
      this.setData({
        payMuch: S + num,
      });
    }
    //没有小数点
    if (!(S.indexOf(".") > -1)) {
      //如果第一位是0，只能输入小数点
      if (num == 0 && S.length == 0) {
        this.setData({
          payMuch: "0.",
        });
      } else {
        if (S.length && Number(S.charAt(0)) === 0) {
          this.setData({
            payMuch: num,
          });
          return;
        }
        this.setData({
          payMuch: S + num,
        });
      }
    }
  },
  showOffMethod(e){
    this.setData({
      popshow:e.detail.show1
    });
  }
});
